package com.gimi.cloud.jimi.manage.consumer.feign;

import com.gimi.cloud.jimi.common.utils.reqhead.Response;
import com.gimi.cloud.jimi.dto.prod.ProdCatModelDTO;
import com.gimi.cloud.jimi.dto.prod.ProdCategoryDTO;
import feign.Headers;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Created by lixj on 2017/12/18.
 */
@FeignClient(name = "jimi-manage-service")
public interface ProdCategoryFeignService {

    /***商品品类操作开始
     * @param prodCategoryDTO***/
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/list", method = RequestMethod.POST)
    Response getCategoryList(ProdCategoryDTO prodCategoryDTO);

//    @Headers({"Content-Type: application/json","Accept: application/json"})
//    @RequestMapping(value = "category/add", method = RequestMethod.POST)
//    String categoryAdd(ProdCategoryDTO prodCategoryDTO);

//    @Headers({"Content-Type: application/json","Accept: application/json"})
//    @RequestMapping(value = "category/update", method = RequestMethod.POST)
//    String categoryUpdate(ProdCategoryDTO prodCategoryDTO);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/saveOrUpdate", method = RequestMethod.POST)
    Response saveOrUpdate(ProdCategoryDTO prodCategoryDTO);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/delete", method = RequestMethod.POST)
    Response categoryDelete(ProdCategoryDTO prodCategoryDTO);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/pageList", method = RequestMethod.POST)
    Response getCategoryPageList(ProdCategoryDTO prodCategoryDTO);

//    @Headers({"Content-Type: application/json","Accept: application/json"})
//    @RequestMapping(value = "category/gotoEditProdCategory", method = RequestMethod.POST)
//    String gotoEditProdCategory(ProdCategoryDTO prodCategoryDTO);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/loadPordCategoryAndInitModelInfo", method = RequestMethod.POST)
    Response loadPordCategoryAndInitModelInfo(ProdCategoryDTO prodCategoryDTO);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/getThreeProdCatModel", method = RequestMethod.POST)
    Response getThreeProdCatModel(ProdCatModelDTO prodCatModelDTO);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/searchCategoryListByGrade", method = RequestMethod.POST)
    Response searchCategoryListByGrade(ProdCategoryDTO prodCategoryDTO);
    
    @Headers({"Content-Type: mutipart/form-data","Accept: application/json"})
    @RequestMapping(value = "/category/fileUpload", method = RequestMethod.POST)
    Response fileUpload(MultiValueMap multipartFiles);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/getCategoryListTree", method = RequestMethod.POST)
    Response getCategoryListTree(ProdCategoryDTO prodCategoryDTO);

    @Headers({"Content-Type: application/json","Accept: application/json"})
    @RequestMapping(value = "category/getCategoryListByParent", method = RequestMethod.POST)
    Response getCategoryListByParent(ProdCategoryDTO prodCategoryDTO);
    /***商品品类操作结束***/
}
